import rospy

rospy.init_node("time",anonymous=True)
#获取时刻
right_time=rospy.Time.now() #将当前时刻获取并封装成对象
rospy.loginfo("%.2f",right_time.to_sec())
rospy.loginfo("%d",right_time.secs)

#设置指定时刻

time1=rospy.Time(100.5)
time2=rospy.Time(100.5456123)
rospy.loginfo("制定时刻1:%.2f",time1.to_sec())
rospy.loginfo("制定时刻2:%.2f",time2.to_sec())

#从某个时间节点获取时间对象
time3=rospy.Time.from_sec(210.12)
rospy.loginfo("制定时刻3:%.2f",time3.to_sec())

#程序执行中停顿5秒
left_time=rospy.Time.now()
rospy.loginfo("%.2f",left_time.to_sec())
rospy.loginfo("休眠前----------")
#封装持续时间对象
duration=rospy.Duration(5)
#休眠
rospy.sleep(duration)
rospy.loginfo("休眠后----------")
left_time=rospy.Time.now()
rospy.loginfo("%.2f",left_time.to_sec())


#获取程序开始执行时间 且已知持续运行时间，计算程序结束时间
# 1. 获取一个时刻 t1 
t1=rospy.Time.now()
dura=rospy.Duration(5)
rospy.loginfo("开始时间%.2f",t1.to_sec())
t2=t1+dura
rospy.loginfo("结束时间 %.2f",t2.to_sec())

def msg():
    rospy.loginfo("关闭节点")




def doMsg(event):
    rospy.loginfo("+++++++++++++++")
    rospy.loginfo("调用回调函数的时刻%.2f",event.current_real.to_sec())
#定时器
# timer=rospy.Timer(rospy.Duration(2),doMsg,oneshot=True)
timer=rospy.Timer(rospy.Duration(2),doMsg,oneshot=True)
rospy.spin()
"""
持续时间
回调函数
是否是一次性的

"""


#log
rospy.logdebug("DEBUG信息不会输出")
rospy.loginfo("INFO消息")
rospy.logwarn("ERROR消息")
rospy.logerr("ERROR消息")
rospy.logfatal("fatal消息")

#关闭节点
rospy.on_shutdown(msg)
rospy.signal_shutdown("关闭节点")

